查看原文
其他

Pigsty v1.5.1发布

Vonng 非法加冯 2023-08-11


内核

在PostgreSQL 14.0 至 14.3 中,出现了一个BUG。当您使用

CREATE INDEX CONCURRENTLY | REINDEX CONCURRENTLY

在线重建索引时,有可能会导致静默的 索引数据腐坏。 

在 2022.06.16日,PostgreSQL全球开发组 Release 了 14.4 以解决这一问题。

https://www.postgresql.org/about/news/postgresql-14-out-of-cycle-release-coming-june-16-2022-2466/

因为在线重建索引是一个非常重要的生产级运维功能,允许用户在不影响表读写的情况下建立新的索引。强烈建议所有使用 PG14 的用户尽快升级小版本至 14.4

Pigsty v1.5.0 默认使用 PostgreSQL 14.3 ,在v1.5.1中已经升级为 PG 14.4


PostgreSQL和它的小伙伴们


扩展

Pigsty v1.5.1 对 Citus和TimescaleDB扩展插件进行了升级。

Citus 11

https://www.citusdata.com/updates/v11-0

Citus 于3天前紧跟着 PG 14.4 正式释出 v11,把所有企业版的特性都开源了,当然最重要的特性就是在线平衡数据分区(自动平滑扩缩容),可谓功德无量。Pigsty立刻就把它给搞进 v1.5.1 了。有了 Citus 企业版特性,这下PG真的成为了:分布式地理空间时序超融合数据库了。


Citus 是原生的PG插件扩展,主要针对的场景包括:

  1. 多租户,让数据按照租户自动分片。

  2. 实时分析,并行加速实时聚合,压到秒级响应。

它的主要应用场景与 TiDBMyCat中间件类似。都是海量CRUD。核心能力是水平分片与并行计算,可自动对大表进行透明的水平分片,(e.g 支持到PB级)。在此基础上,通过多节点,多进程,多worker的方式,让 sum/avg/count/... 这些聚合“分析”函数的响应时间进入“在线”业务的容忍范畴(例如1秒上下)。


Pigsty默认安装Citus,但默认不启用它。启用Citus非常简单,通常您需要修改两个参数:max_prepared_transaction 修改为一个大于 max_connections 的值以启用两阶段提交。 并在 shared_preload_libraries 中填入 citus 并放置于首位。

然后您只需  CREATE EXTENSION citus ,即可使用此分布式扩展。


Citus 可以与地理空间扩展 PostGIS 很好的共同配合,但与 TimescaleDB 相性不佳。您可以同时使用两种插件,但最好不要在同样的表上交叉使用,因为这是两种不同的数据分区方案。


TimescaleDB

https://docs.timescale.com/timescaledb/latest/overview/release-notes/

TimescaleDB 也于近期(2022-05-24) 发布了2.7版本,该版本显著增强了 连续聚合 的能力,例如在连续聚合中使用 DISTINCT, FILTER, HAVING FILTER, Ordered-Set Agg, Hypothetical-Set Agg

TimescaleDB 是一个原生的 PostgreSQL 插件,提供了强大的时序数据存储、处理、分析能力。它有一个商业的多节点集群版本,而单节点的版本作为PG插件的形式完全开源免费。

Pigsty的CMDB默认启用了 TimescaleDB ,它可以很好地与 PostGIS 扩展插件提供的地理空间能力相互配合。但是和 Citus 的相性不佳(Citus针对业务字段进行水平分片,而 TimescaleDB 针对时间分区进行定制优化)。

尽管TimescaleDB与Citus可以在同一个数据库集簇中同时启用,但建议您还是根据自身的业务场景,在两者中选择一个启用。




Patroni

https://patroni.readthedocs.io/en/latest/releases.html

Patroni作为Pigsty使用的数据库高可用组建,于本月发布了 2.1.4 版本,此版本修复了一系列问题。


HAProxy

https://www.haproxy.com/blog/announcing-haproxy-2-6/

HAproxy是Pigsty默认使用的负载均衡器,于本月释出了 2.6 版本。

此版本有大量有趣的新功能,例如用于精细控制流量的命令行工具,HTTP3支持,新的负载均衡算法,以及更稳定的在线配置重载。



基础设施升级

https://grafana.com/docs/grafana/latest/release-notes/release-notes-9-0-0/

Grafana 升级至 9.0,整体UI有了显著改善。9.0的统一告警功能有了显著增强并默认启用。针对 Prometheus LokiGrafana 9 提供了辅助编写查询的可视化工具(类似PromLens),能显著提升开发使用体验。

不过需要注意的是,例如 Auth Proxy 这样的功能现在变为了企业版特性。


新的应用

Pigsty新增了两个 Docker 应用:开箱即用的本地维基百科,以及为Postgres提供MongoDB API 能力的 FerretDB(原名叫 MangoDB,碰瓷 MongoDB 被呲了才改名的)


WIKI.js

您自己的维基百科,数据使用Postgres存储,与Markdown互通。

https://pigsty.cc/zh/docs/app/docker/wiki/

FerretDB

为PostgreSQL提供MongoDB兼容的API,您可以用MongoDB API来使用PG了


后续工作

Pigsty v1.6 的开发正在筹划中,拟于7月释出一个Beta版本。

1.6版本重点关注安全性,加密,证书。元节点上将默认创建一个本地 CA,每个节点,ETCD/Consul都会默认添加此 CA,并启用可选的SSL流量加密。此外,PostgresPgbouncerPG Exporter,都将开始提供针对SSL加密的可选支持。默认的数据库密码认证方式将从 md5 升级至更安全的 SCRAM-SHA-256

Pigsty v1.6 还将提供自动适配的参数模板。在先前版本中,如果用户需要在不同规格的机器上部署,通常需要自己选择对应规格的配置模板,例如:

tiny, mini, micro, small, medium, large, nxlarge....

诸如此类。自动适配的模板将自动根据操作系统的配置规格进行适配,用户无需显式选择,通常只需要在功能上选择 OLTPOLAPCRITTINY 四种模式之一即可。

非常感谢用户 @Alemacci  提供了一系列关于安全与自动配置的功能实现,这些功能将在充分测试后于1.6.0释出。这位帅哥太高产了,一次性把一大堆功能都做了,包括:

  • 可配置的日志目录

  • 所有组件的SSL支持

  • CA基础设施与证书签发

  • Postgres的 SCRAM-SHA-256 认证改造

  • 自动适配机器的Patroni配置模板

诸如此类,都是非常务实,迫切需要的功能。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存